#ifndef MSGSOCKET_H
#define MSGSOCKET_H

#include <QObject>
#include <QTcpSocket>

enum RESPONSE{
    RES_Down = '!',
    RES_Fail = '?'
};

class MsgSocket : public QObject
{
    Q_OBJECT
public:
    explicit MsgSocket(QObject *parent = nullptr);

signals:
    void signalUserRegisterResult(bool res);
    void signalUserLoginResult(bool res, QString msg);
    void signalUserLogoutResult(bool res);

    void signalGetOnlineUserResult(bool res);
    void signalGetMsgAllResult(QString msg);
    void signalGetMsgPrivateResult(QString id, QString msg);

public slots:
    void slotReadyRead();
    void slotSendMessage(QString msg);

private:
    QTcpSocket* m_tcpSocket;

    void parseUserMsg(QString msg);
    void parseUserRegister(QString msg);
    void parseUserLogin(QString msg);
    void parseUserLogout(QString msg);
    void parseGetOnlineUser(QString msg);
    void parseGetMsgAll(QString msg);
    void parseGetMsgPrivate(QString msg);
};

#endif // MSGSOCKET_H
